#ifndef OGRE3DENGINE_H
#define OGRE3DENGINE_H

#include "StdAfx.h"
#include "CameraEventsHandler.h"

class Ogre3DEngine
{
public:
	Ogre3DEngine(void);
	virtual ~Ogre3DEngine(void);

	void init(void);
	void createOgreWindow(QWidget*);
	void setupResources();
	void loadResources(void);
	void createSceneManagerAndCamera(QWidget*);
	void createScene();
	void paintAxis();
	virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);
	CameraEventsHandler* getCameraHandler();
	Ogre::Root* getOgreRoot();
	Ogre::RenderWindow* getOgreWindow();


	

private:
	Ogre::Root *mOgreRoot;
	Ogre::RenderWindow *mOgreWindow;
	Ogre::Camera *mCamera;
	Ogre::Viewport *mViewport;
	Ogre::SceneManager *mSceneMgr;
	Ogre::SceneNode *mainNode;
	Ogre::SceneNode *lightNode;
	CameraEventsHandler *cameraMan;
	Ogre::String mResourcesCfg;
    Ogre::String mPluginsCfg;
};

#endif